home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Eagles Nest BBS 8
/
Eagles_Nest_Mac_Collection_Disc_8.TOAST
/
Developer Tools⁄Additions
/
VoodooM10d24
/
VoodooMonkey 1.0d24
/
VoodooMonkey 1.0d24 Changes
< prev
next >
Wrap
Text File
|
1994-07-25
|
17KB
|
450 lines
VoodooMonkey Change History (edited for external release)
Mike Lockwood
July 25, 1994
1.0d24 Changes
Added support for the MPW 3.4 Sym file format.
Fixed a bug that occured when reading Sym files created by ILink. Not all the source
files were appearing in the browser, due to improper assumptions about the ordering
of things in the Sym file. The fix resulted in making opening of Sym files a bit slower,
but atleast now VoodooMonkey is more compatible with linkers other than the MPW linker.
Fixed a problem stepping over HLockHi.
Fix Resource Manager reentrancy problem in DebuggerINIT. ResLoad was mysteriously being
set to false when stepping over certain toolbox calls.
Disabled multi-threaded debugging features on PowerPC machines running system software
earlier than final versions of System 7.5 to work around an incompatibility between
DebuggerINIT and the native Thread Manager.
Hopefully fixed a bug in DebuggerINIT that was causing Paul's machine to crash at startup.
Other DebuggerINIT fixes to fix bugs that Metrowerks discovered.
1.0d23 Changes
Put support for the AOCE Process Manager under System 7.1, reversing a change
in 1.0d22. This allows DebuggerINIT to be compatible with the Drag Enabler
extension for System 7.1, which comes with the Drag Manager and Powerbook File Assistant.
Added support for A/UX 3.0.1 and another A/UX-like operating system.
Fixed a bug that occured when stepping over a function in an application's main
routine, when the main routine does not have a LINK instruction.
Added support for a non-standard jump table format, which is generated by a certain
non-MPW linker.
Fixed a problem that occured when you tried to enter the low-level debugger and
the PC is at a breakpoint. After getting the dialog telling you to clear the
breakpoint and clearing the breakpoint, the dialog would keep coming up each time
you tried to enter the low-level debugger, even though you cleared the breakpoint.
1.0d22 Changes
Fixed an incompatibility between System 7 Pro and DebuggerINIT.
Removed support for AOCE under System 7.1. Older AOCEs ran on top of System 7.1,
but it now ships with the System 7.1.1 System file.
Fixed a case sensitivity problem that occured when a Sym file was renamed and
the "SYM" suffix was not all upper cased.
1.0d21 Changes
Fixed an incompatibility between DebuggerINIT and Thread Manager 1.2. Under
version 1.2, you could not open a stack crawl for an inactive thread!
This is because one of the Thread Manager data structures changed between
1.1 and 1.2. As a result:
••••• VoodooMonkey now only supports Thread Manager 1.2 !!! •••••
Of course, you can still use VoodooMonkey without the Thread Manager installed.
If you have Thread Manager 1.1 installed, VoodooMonkey will work, but thread
specific features will be disabled
Reenabled the MacApp object inspector. This had been disabled in previous
releases, because it required changes in MacApp after 3.0.1. These changes
just resurfaced in MacApp 3.1a1. To use the object inspector, you must build
your MacApp 3.1 application with the -Inspector option.
Fixed a few crashing bugs.
Fixed a bug that caused a circular display of "Could not complete your request
because of a program error" dialogs.
1.0d20 Changes
Added support for debugging ASLM shared libraries. I tested this with
ASLM 1.1b7, but it will probably work with ASLM 1.0 as well.
Variable windows now close automatically when the variable goes out of scope.
This avoids the slowness that occurs when stepping and out of scope variable
windows are open. In SourceBug, variable windows stay open because they can
come back in scope when you step back into the function the variable is from,
but this never seemed to work in VoodooMonkey.
When stepping, the stack crawl window is no longer brought infront of variable
windows. This allows you watch variable values change more easily while you
are stepping.
Fixed a bug resulting in occasional crashes in the DebuggerINIT when you stop
debugging a program.
Stripped out references to secret Apple projects from this document, so it
could be released outside of Apple.
1.0d19 Changes
Added support for displaying and editing variables that contain C bitfields.
Removed a bogus DebugStr that said "wrong version of the Thread Manager".
This message would sometimes occur if a program crashes badly, and ExitToShell
(either MacsBug "es" or the VoodooMonkey's Kill command) fails to kill the
process.
1.0d18 Changes
Fixed a freak incompatibility between DebuggerINIT 1.0d17 and the (almost)
final Thread Manager. Quitting applications is now safe practice.
1.0d17 Changes
Fixed a bug that sometimes prevented disassembling code in the browswer
for an application that has not been launched yet.
The DebuggerINIT now disables the Thread Manager's scheduler when it is
handling events or exceptions. This is done to avoid some reentrancy
problems that might occur, like a preemtive thread creating a new thread
while the DebuggerINIT is handling a breakpoint.
The "Clear All Breakpoints" command now clears all breakpoints in all
programs being debugged. This decision clears up ambiguity when debugging
with multiple sym files for one process, or multiple processes with one
Sym file
VoodooMonkey no longer handles breakpoints or exceptions that occur in
preemptive threads. Breakpoints are ignored, and exceptions go to the
low-level debugger. This is for your own protection, since it is not
safe to switch to another process in a preemtive thread.
Choosing "Open Process Browser", "Show Registers for…" or
"Show FPU Registers for…" no longer creates a second window, if a window
is already open.
The log window is now removed from the windows menu when it is closed.
The "Show FPU Registers" menu item is now disabled if your machine doesn't
have an FPU.
VoodooMonkey now prevents you from switching to the low-level debugger if
the PC is at a breakpoint. This restriction is added because the DebuggerINIT
has no way to restore the breakpoint after stepping past it if you are in
MacsBug or TMON. The user now must clear or step past the breakpoint before
switching to the low-level debugger.
VoodooMonkey now immediately clears the stack crawl when the process resumes
execution.
1.0d16 Changes
Revved to another change in the Thread Manager.
••••• VoodooMonkey now requires Thread Manager 1.0b3 or later!!! •••••
VoodooMonkey is now compatible with the special AOCE Process Manager.
You can now copy text from the source or assembler view, or the log window.
The Log Window is now working (it had been in hibernation since the SourceBug days).
Execution timing information is now displayed in the log window, rather
than a modal dialog.
Fixed a problem handling SysBreakStr and SysBreakFunc when they are called
by a process that is not being debugged.
Fixed a problem that prevented opening stack crawl windows for some threads
after targeting an already running threaded application.
1.0d15 Changes
Cleaned up and tweaked the source so VoodooMonkey and DebuggerINIT would
compile with Symantec's SCpp 1.0b2. However, due to a code generation bug
I ran into, I'm still building with MPW CFront.
1.0d14 Changes
(Hopefully) fixed an occasional crash in the stack crawl for multithreaded
applications.
Sped up opening views of very large functions.
Moved the grow box back to the corner of the window, instead of inset within
the bottom right pane.
1.0d13 Changes
When you target a process, either with the Target menu command or by
entering via TMON, VoodooMonkey will try to open the Sym file for the
process if it isn't already open.
Fixed a problem that occured when debugging applications without SIZE
resources, or didn't have the canBackground bit set. To avoid the
flashing effect, VoodooMonkey does not constantly switch the program
you are debugging to the front when you are stepping. However, if
the program does not background, the program does not wake up, and
the step never completes. Now, if the canBackground is not set,
VoodooMonkey will force the program to the front.
Revved to a recent change in the Thread Manager. The DebuggerINIT works
works with Thread Manager 1.0a3 or later.
Fixed some bugs in processing events received from the DebuggerINIT.
Stack crawl windows now close when the associated thread is terminated,
and the object inspector is now being notified when objects are freed.
The edit text in the "Evaluate…" no longer contains garbage characters.
1.0d12 Changes
Added support for modifying variable values in variable windows.
Just click on the variable value (to the right of the "=" sign) to
edit in place. The view as options control the format in which the
variable is edited. This feature has not been heavily tested yet,
so you might run into a few kinks here and there.
WARNING: Beware when editing StringHandles. VoodooMonkey does not
prevent you from changing a string to a longer string, which could
result in writing beyond the end of the block and trashing the heap.
The view as menu items now have a check to indicate how the selected node
in the memory view is being displayed.
Changed the name of the "View as…" menu item to "Coerce to type…" to
make it more obvious what this feature does.
Fixed a problem displaying unions contained in structs. The offset into
the struct was not being calculated properly, resulting in wrong values.
"Evaluate this…" now has Command-T as a command key equivalent.
Process Browser enhancements:
• Targeted processes are now shown in bold.
• For a suspended process, the current thread is shown in bold.
• Processes are now sorted by name.
• Threads are now sorted by ThreadID.
Added a new about box.
1.0d11 Changes
The DebuggerINIT is now compatible with the 1.0a3 version of the
Thread Manager. The DebuggerINIT is no longer compatible with versions
before 1.0a3.
Fixed some bugs related to debugging multi-threaded applications.
The DebuggerINIT now protects itself from bus errors when doing a
stack crawl. This reduces the possibility of VoodooMonkey crashing
when debugging an application that trashed its own stack.
Added an execution timing feature (thanks to code provided by John Glenn).
If the "Time Execution" menu item is turned on in the "Control" menu,
VoodooMonkey will time execution from the time you "Run" until you hit
the next breakpoint. You can also time execution using the "Go Until"
feature, (double clicking on a diamond is "Go Until"). According to
John, this feature is accurate to within approximately 20 microseconds.
Since tracing greatly affects execution time, "Time Execution" does not
work with stepping. It only works with "Run" or "Go Until".
1.0d10 Changes
VoodooMonkey now saves window positions for Browser, Stack Crawl,
and Process Browser windows.
You can now drag the PC arrow within a function to change the PC.
VoodooMonkey does not adjust A6 or the SP, so be careful moving the PC
over instructions that change the stack.
Changing register values in the register window now works properly.
Fixed bug in the stack crawl code that caused sporadic problems when
stepping out of a function.
1.0d9 Changes
Fixed a few crashing bugs.
invalid pointers now display as "INVALID".
Menu commands for the register windows are now in the Process menu
instead of the Edit menustays in Windows menu
You can now evaluate registers from the disassembly view, by selecting
the register name (like "A4") and selecting the "Evaluate" command.
The register will appear as a long, but can be coerced to another type
using the "View as…" command.
File names are now sorted properly in the browser.
VoodooMonkey's version number now appears in the about box.
1.0d8 Changes
Type casting is now available. You can select any node in a variable window
and use the "View As…" menu command to coerce it to any type that appears
in the Sym file.
VoodooMonkey is now able to evaluate most register based variables that
are in activations further up in the stack crawl. This is heuristic based,
so it might not always work properly.
Merged "Launch" and "Resume" menu commands into "Run" (just like SourceBug).
"Run" and "Kill" now work from the browser, and stepping works when a variable
window is in front of the stack crawl.
Fixed a clipping problem in variable windows that occured when the value of
the variable changed or a "View As" command was done by the user.
Variable windows now display "out of scope" when you step out of the
scope the variable is declared in. If you go back in that scope,
the window will start displaying the variable again.
Fixed a bug that caused autotargeting not to work for MacApp programs.
1.0d7 Changes
VoodooMonkey now automatically targets running processes if it hits a breakpoint
in a non-targeted process. Now to target a running app, just open the Sym file
and set some breakpoints. The process will be targeted when the breakpoint is hit,
so you no longer have to go to the Process Browser to target the process.
Auto targeting also works if you enter VoodooMonkey from TMON, using the
"SourceBug macro for TMON Professional" that ships with SourceBug.
Kludged around a problem in CFront that caused some files to be displayed in the
browser as "C".
Fixed a problem that occured when debugging standalone code resources in 24 bit addressing.
C unions and Pascal variant records are now displayed properly.
Pascal subrange variables are now displayed properly.
Enumerated types are now displayed properly. However, the MPW C compiler doesn't
generate symbolics for enums, so you will only notice this improvement in Pascal.
Arrays are now displayed properly. You can expand and collapse arrays using the
outline triangles, and you can now display arrays of structs, or arrays of other
complex types.
1.0d6 Changes
VoodooMonkey no longer asks you for a the executable, if it can find it in the
same directory as the Sym file. If your Sym file is called Banana.SYM,
VoodooMonkey will look for Banana in the same directory. If it is not found,
VoodooMonkey will ask for the location of Banana.
Fixed a lot of memory leaks.
Fixed a bug in the MPW Unmangle.o library that caused VoodooMonkey to go into an
infinite loop when unmangling the names of certain functions.
Fixed a bug in the stack crawl that occured when debugging recursive functions.
The pc was not properly updating when changing between activations of the same
recursive function.
Fixed a bug that caused 1 or 2 byte register based variables to display the
wrong value.
The horizontal scroll bars in the source code panes of the browser and stack crawl
windows now work.
Breakpoints no longer show up as "TRAP #5" in the disassembly.
The disassembler now can disassemble routines in segments that aren't loaded or in
applications that are not running. ReadPartialResource is used, so the disassembler
does not affect the heap of the program you are debugging.
Fixed the Untarget <process> command.
Closing the stack crawl for a running process now untargets the process.
Closing the stack crawl for a suspended process (as before) kills the process,
after asking "are you sure…".
For threaded programs, only closing the stack crawl for the main thread causes the
process to be untargeted or killed.
1.0d5 Changes
Fixed a bug in runtime typing of HandleObjects in programs that have both
HandleObjects and PascalObjects.
1.0d4 Changes
Put in support for dynamically typing PascalObjects at runtime.
VoodooMonkey now fixes up null type references in the type information.
For example, sometimes when viewing a struct that has a RgnHandle as a field,
expanding or double clicking on the RgnHandle didn't work. Now it does!
Launching an application from the browser after it was already running used
to confuse VoodooMonkey. Now, Launch is grayed out if the application
is already running.
Fixed a bug that caused a crash when closing the browser with a
variable window open.
1.0d3 Changes
Added a heuristic for properly evaluating handle based objects. When
you forward declare a class in C++, CFront does not know the class is
handle based, and generates symbolics for a pointer based class.
A heuristic is now used to detect that a pointer to a record is really a
handle, and an extra dereference is added.
Fixed a bug that prevented you from targeting a running process.
(To target a running process, open the Sym file for the process.
Then select the process in the Process Browser and either double-click
on it, or choose "Target <process name>" in the "Process" menu.
Added a cheesy "View As" mechanism, similar to SourceBug.
Fixed a bug that occured if you closed the browser before the stack crawl
window.
Rebuilt the DebuggerINIT with newer Thread Manager headers. This fixed
a few problems debugging threads.
1.0d2 Changes
Fixed some annoying bugs
Disabled some features that weren't quite working
Added a "Windows" menu